[レポート]マルウェア開発のライフサイクルに対抗する – CODE BLUE 2022 #codeblue_jp
CODE BLUE 2022 で行われた下記セッションのレポートです。
セッション概要
タイトル
マルウェア開発のライフサイクルに対抗する
概要
日々増加するインシデントへの対処には、分析の自動化は不可欠である。マルウェア分析のゴールは、マルウェアの詳細を理解することではなく、マルウェア分析結果から同種のマルウェア分析を発見した際、次回の分析を効率化するツールを作成したり、分析を自動化し同種の検体の分析をしなくても済むようにしたりすることである。そのため、普段からマルウェア分析者はツール開発、分析システムの構築を積極的に実施している現状がある。一方で、このようなツールの開発やシステムのメンテナンスにはコストがかかる。日々インシデントの傾向は変化し、マルウェアはアップデートされる中で、新しい脅威に追随し続けることは容易ではなく、マルウェア分析者は、マルウェア分析システムのメンテナンスに多くの時間を費やしており、必要な新たなマルウェアの分析にかけられる時間が減少してしまうという現状がある。
われわれは、このような問題を解決するべくマルウェア分析にDevOpsの要素を取り入れて、日々のシステムメンテナンスのコスト削減を進めている。CI/CDやサーバーレスといった昨今のシステム開発に活用されている技術は、システムのメンテナンスやリリースを効率化する手段であり、これらはマルウェア分析者の悩みを解決する手段となりうる。本プレゼンテーションでは、CI/CDやサーバーレスなどのクラウド技術を使用して、どのようにマルウェア分析を効率化するのかという点にフォーカスして、われわれの経験を事例として紹介する。具体的には、以下の事例について説明する。
- Malware C2 Monitoring
- Malware Hunting using Cloud
- YARA CI/CD system
- Malware Analysis System on Cloud
- Memory Forensic on Cloud
- CAPE on Cloud
上記事例を通してクラウド活用のメリットやTipsを共有するとともに、Infrastructure as Code (IaC)と使って同様のシステムを構築する方法を紹介する。本プレゼンテーションを通して、マルウェア分析の効率化手法、クラウドなどを使用したマルウェア分析システムの構築方法について学ぶことができる。
Presented by
朝長 秀誠 - Shusei Tomonaga
喜野 孝太 - Kota Kino
増渕 維摩 - Yuma Masubuchi
レポート
- JPCERT/CC の発表
- 攻撃者は攻撃ツールを開発して送り出してくる → ユーザーは検知して駆除する、というサイクルを繰り返している現状がある
- マルウェア分析者は MAOps (Malware Analysis Operations) を繰り返す
- 繰り返しに疲弊して自動化する結論となる
- 最初はマルウェアをメンテナンスしている攻撃者も対策が続くと、いつかは疲弊してメンテナンスを諦める
- そのため、新しいマルウェア分析ルールを開発したい
- しかし、時間と労力がかかる
- アプローチとして DevOps の考え方を導入してクラウドを中心とした技術(サーバレス、IaC)を用いる
- クラウドのメリット
- IP アドレスを動的に変更可能
- スケールアウトが容易
- サーバメンテナンスが容易
- クラウドのメリット
- クラウドを使った分析ツールの事例を紹介する
Malware C2 Monitoring
- クラウド上で C2 サーバを監視する
- 攻撃者の活動を把握するために重要
- ただし、アクセスし過ぎるとブロックされる場合や自分がターゲットにされる場合がある
- (Lucky Visitor Scam の説明)
- C2 サーバは定期的に変更される
- 発見からブラウザのリダイレクト遮断までを自動化している
- AWS Lambda や Amazon EventBridge を活用している
- URL 情報は GitHub 上に公開している
- Google Cloud でも構築可能
- クラウド利用のため、C2 サーバが国内からの通信を遮断している場合に、別リージョンで構築し直して監視を継続できた
Malware Hunting using Cloud
- 大量のマルウェアを手動で分析するのはほぼ不可能
- 自動化している
- C2 サーバの情報を収集して、ビーコンファイルをダウンロードし、分析を行い、結果を蓄積
- AWS で実現している
- AWS Lambda や EventBridge を活用している
- 手動調査するための API を用意している(AWS API Gateway, AWS WAF, Lambda 等を利用)
YARA CI/CD System
- 手動で分析して、YARA ルールを作成することは時間がかかる
- 全てに共通的な自動化はないが、特定パターンにおいてルール作成を自動化している
- HUI Loader のエンコードアルゴリズムはあまり変化がない
- HUI Loader を取得して、分析して、自動で YARA ルールを作成して、結果を蓄積
- AWS で実現している
- Malware Hunting using Cloud と同じような構成
Surface Analysis System on Cloud
- セキュリティベンダなどが出しているレポートに記載されているハッシュ値からマルウェアの情報がわかりにくい課題がある
- Twitter のつぶやきでも同様のことが言える
- サンドボックスサービスは解決には不十分
- サンドボックス結果の失敗がある、動作確認に成功しても不十分であったり、自組織とその関係性がわからない場合がある
- クラウド上で分析ルールを作成
- Web ブラウザからハッシュ値を送信して、マルウェア情報を取得して、分析結果を保存
- FireFox アドオンとして実装
- ハッシュ値と分析結果をブラウザ上から確認できる
- AWS で実現している
- これまで同様にサーバレス構成で構築されている
- (分析ツールのデモ)
- 分析に数分かかる
- IaC で構築している
- メンテナンスコストが課題のため、アップデートが少ないシンプルなシステムには利用しない等、利用シーンを選択している
- Terraform を利用
- (GitHub Actions と Terraform で構築するデモ)
- GitHub で公開しており、誰でも利用できる
Memory Forensic on Cloud
- メモリフォレンジックにおいて、メモリサイズで制限がかかるのは好ましくない
- クラウドで構築する場合はスケールが容易
- メモリイメージ取得して、クラウドにアップロード、分析して結果を保存
- AWS で実現している
- これまで同様にサーバレス構成で構築されている
- S3 へのアップロードを Amazon EventBridge で検知して AWS Lambda を実行(ジョブを Submit)
- フォレンジックを AWS Batch でスケールして実行している
- 結果はブラウザ上から確認できる
- (メモリフォレンジックシステムのデモ)
- GitHub で公開しており、誰でも利用できる
クラウドで実現する Tips
- 各サービスのクオータ(上限)に注意
- AWSの例では、大きなサイズのアップロードに制限がある場合もある
- GitHub Actions の無料枠の制限に注意
まとめ
- MAOps に対抗するための事例を紹介した
- 管理コストが低いマルウェア分析システムを構築する手法を紹介した
- クラウド上でマルウェア分析を行う具体的な事例を紹介した
さいごに
お手本のような AWS 活用事例がいくつも紹介されており、具体的な AWS アーキテクチャなどとても勉強になるセッションでした。